#ifndef BLAZEMAXEXPORT_H
#define BLAZEMAXEXPORT_H

class CExporterDesc;

class CExporter : 
	public UtilityObj 
{
public:
	CExporter(CExporterDesc* pDesc);
	~CExporter();

	static Interface* GetMax() { return m_pMax; }

	void BeginEditParams(Interface* ip,IUtil* iu);
	void EndEditParams(Interface* ip,IUtil* iu);
	void DeleteThis();

	void LoadConfig();
	void SaveConfig();

	void OnPanelButtonProperties();
	void OnPanelButtonExport();
	
	void Build();
	
private:
	HMODULE m_hModuleHandle;

	static UtilityObj* m_pBlazeMain;
	static Interface* m_pMax;
	IUtil* m_pMaxUtil;

	HWND m_hPanel;

	static INT_PTR CALLBACK ConfigDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
	static CExporter* m_pThis;
};


const char* GetNameFromID(unsigned int iID);
INode* GetNodeFromID(unsigned int iID);
SClass_ID GetClassIDFromNodeID(unsigned int iID);
SClass_ID GetClassIDFromNode(INode* pNode);


#endif
